1. Technical Field
This disclosure relates to methods and systems supporting computing and data processing systems. More particularly, the disclosure relates to processing messages using a common interface platform supporting multiple pluggable data formats {e.g Extensible Markup Language (XML), JavaScript Object Notation (JSON), Name-Value Pairing (NV), binary, etc.} in a service-oriented pipeline architecture.
2. Related Art
In Services Oriented Architecture (SOA), there are typically many communicating reusable services that are deployed in several machines. In large-scale enterprises, like EBAY®, ETRADE.COM®, or GOOGLE® for example, there could be thousands of different services deployed in thousands of machines. It is most common and efficient for these services to communicate with each other. Further, external access is also typically provided for some of these services. In communicating with each other, various different types of communication protocols may be used for efficiently and optimization reasons. Communication between service providers and service consumers can be accomplished using some pre-defined protocol. In the web services case, this protocol can be the Simple Object Access Protocol (SOAP). SOAP is a protocol for exchanging Extensible Mark-up Language (XML)-based messages over computer networks, normally using Hypertext Transport Protocol (HTTP/HTTPS). SOAP often forms the foundation layer of the web services protocol stack providing a basic messaging framework upon which abstract layers can be built. There are several different types of messaging patterns in SOAP; but, by far the most common is the Remote Procedure Call (RPC) pattern, in which one network node (the client) sends a request message to another node (the server) and the server immediately sends a response message to the client.
Although SOAP can provide a communication or messaging protocol that can be used in some SOA implementations, sometimes there is a need for communicating using other protocols. For example, in some cases it may be beneficial or more efficient to use a proprietary protocol or some messaging protocol other than SOAP. When various different protocols are used, the SOA must either support all protocols and thereby become complex and inefficient, or the SOA is compatibility-restricted to operation only with one protocol. SOA's that support multiple protocols typically have different and independent message processing models. For example, an XML message received via SOAP in a conventional multi-protocol SOA is processed differently and independently from the processing performed on an XML message received via a protocol other than SOAP. Thus, the conventional multi-protocol SOA has some duplicated functionality and inefficiencies in the model and resource utilization.
U.S. Patent Application No. 2005/0223109 describes a system wherein services such as product services, real-time services, and common services are deployed in a services oriented architecture. These services may, for example, be deployed for use in a variety of enterprise data integration functions.
U.S. Patent Application No. 2007/0011126 describes a service-oriented architecture (SOA) and accompanying method. In one embodiment, the SOA includes one or more service requesters coupled to one or more service providers via a bus. The bus includes runtime-binding functionality to facilitate interaction between the one or more service requesters and the one or more service providers. A registry, which stores information pertaining to a service provided by the one or more service providers, communicates with one or more service providers and/or requesters and the bus. In a more specific embodiment, bus includes a Service-Integration Bus (SIB) that includes a Service-Factory (SF) module for facilitating implementing the runtime binding functionality and for selectively invoking the service. Functionality of the SOA is strategically organized into various tiers and layers, including a requester tier, a provider tier, a business-process services tier, an infrastructure-services tier, an SIB layer, a persistence layer, and so on.
U.S. Patent Application No. 2005/0267947 describes a system including a service bus, which can act as an intermediary between a client and a service. Messages to the service bus arrive on a transport and can be processed to determine a destination to route and/or publish the message to, a transformation to perform on the message, and/or security processing. The message is then sent out on a transport bound for a service or another service bus. A response to the message can follow an inverse path through the service bus.
Typically services support invocation through multiple different data formats (e.g XML, JSON, NV, Binary XML etc.), just like services that support invocation through multiple protocols. However, conventional systems do not offer a serialization/de-serialization capability that converts these different data formats into respective java objects compatible with the service with which a consumer is working. Conventional systems typically provide different application programming interfaces (APIs) or models for each data format. This approach not only is inefficient, but also makes it difficult to seamlessly add a new data format, without changing any existing services, consumers, or APIs.
Thus, a computer-implemented system and method for processing messages using a common interface platform supporting multiple pluggable data formats in a service-oriented pipeline architecture, are needed.